﻿using System;

namespace Lesson_2练习题
{
    class Program
    {
        static void Main(string[] args)
        {

            #region 练习一
            //请创建一个一维数组并赋值，让其值与下标一样，长度为100
            int[] arr1 = new int[100];
            for (int i = 0; i < arr1.Length; i++)
            {
                arr1[i] = i;
            }
            //for (int i = 0;i < arr1.Length; i++)
            //{
            //    Console.WriteLine(arr1[i]);
            //}
            #endregion

            #region 练习二
            //创建另一个数组B，让数组A中的每个元素的值乘以2 存入数组B中
            int[] arrA = new int[10];
            for (int i = 0;i < arrA.Length; i++)
            {
                Random random1 = new Random();
                arrA[i] = random1.Next(0, 100);
            }
            //for (int i = 0; i < arrA.Length; i++)
            //{
            //    Console.WriteLine(arrA[i]);
            //}
            #region 分割线
            //Console.WriteLine("*******************************");
            #endregion
            int[] arrB = new int[10];
            for(int i = 0; i < arrB.Length; i++)
            {
                arrB[i] = arrA[i] * 2;
            }
            //for(int i = 0; i < arrB.Length; i++)
            //{
            //    Console.WriteLine((int)arrB[i]);
            //}
            #endregion

            #region 练习三
            //随机(1 ~ 100)生成一个长度为10的整数数组
            int[] arr2 = new int[10];
            for (int i = 0; i < arr2.Length; i++)
            {
                Random random1 = new Random();
                arr2[i] = random1.Next(0, 100);
            }
            //for (int i = 0; i < arr2.Length; i++)
            //{
            //    Console.WriteLine(arr2[i]);
            //}
            #endregion

            #region 练习四
            //从一个整数数组中找到最大值，最小值，总合，平均值(可以使用随机数0~100)
            int[] arr3 = new int[10];
            int sum = 0;        //总和
            int aver = 0;       //平均值
            for (int i = 0; i < arr3.Length; i++)
            {
                Random random3 = new Random();
                arr3[i] = random3.Next(0, 100);
                sum += arr3[i];
            }
            aver = sum / arr3.Length;
            ////输出数组
            //for (int i = 0; i < arr3.Length; i++)
            //{
            //    Console.WriteLine(arr3[i]);
            //}
            //找到最大值
            int max = 0;
            for (int i = 0; i < arr3.Length; i++)
            {
                if(max < arr3[i])
                {
                    max = arr3[i];
                }
            }
            //找到最小值
            int min = 0;
            for (int i = 0; i < arr3.Length; i++)
            {
                if (min > arr3[i])
                {
                    min = arr3[i];
                }
            }
            ////输出
            //Console.WriteLine("最大值{0}，最小值{1}，总合{2}，平均值{3}", max, min, sum, aver);
            #endregion

            //★★
            #region 练习五
            //反转数组
            int[] arr4 = new int[10];
            for(int i = 0; i < arr4.Length; i++)
            {
                Random random4 = new Random();
                arr4[i] = random4.Next(0, 100);
            }
            //for(int i = 0;i < arr4.Length; i++)
            //{
            //    Console.WriteLine(arr4[i]);
            //}
            
            for (int i = 0; i < arr4.Length / 2; i++)
            {
                //申明中间变量
                int temp = arr4[i];
                arr4[i] = arr4[arr4.Length - 1 - i];
                arr4[arr4.Length - 1 - i] = temp;
            }
            //for (int i = 0; i < arr4.Length; i++)
            //{
            //    Console.WriteLine(arr4[i]);
            //}
            #endregion

            #region 练习六
            //将一个整数数组的每一个元素进行如下处理
            //如果元素是正数，值加1
            //如果元素是负数，值减1
            //如果元素为0，值不变
            int[] arr5 = new int[10];
            for (int i = 0; i < arr5.Length; i++)
            {
                Random random5 = new Random();
                arr5[i] = random5.Next(-100, 100);
            }
            //for (int i = 0; i < arr5.Length; i++)
            //{
            //    Console.WriteLine(arr5[i]);
            //}
            for(int i = 0;i < arr5.Length; i++)
            {
                if (arr5[i] == 0)
                {
                    arr5[i] = 0;
                }
                else if (arr5[i] > 0)
                {
                    arr5[i]++;
                }
                else
                {
                    arr5[i]--;
                }
            }
            //for (int i = 0; i < arr5.Length; i++)
            //{
            //    Console.WriteLine(arr5[i]);
            //}
            #endregion

            //★★
            #region 练习七
            //定义一个长度为10的数组 输入10名同学的数学成绩存入数组
            //分别求出最高分和最低分以及平均分
            int[] arr6 = new int[10];
            int sum1 = 0;
            try
            {
                //for (int i = 0; i < arr6.Length; i++)
                //{
                //    arr6[i] = int.Parse(Console.ReadLine());
                //    sum1 += arr6[i];
                //}
            }
            catch
            {
                Console.WriteLine("请按规范输入");
            }
            int max1 = arr6[0];
            int min1 = arr6[0];
            for (int i = 0; i < arr6.Length; i++)
            {
                if(max1 <= arr6[i])
                {
                    max1 = arr6[i];
                }

                if(min1 >= arr6[i])
                {
                    min1 = arr6[i];
                }
            }
            //Console.WriteLine("最高分：{0}，最低分{1}，平均分{2}", max1, min1, sum1 / arr6.Length);
            #endregion

            #region 练习八
            //定义一个string类型数组(长度25) 存储符号 将符号输出成5 * 5的形式
            string[] arr7 = new string[25];
            for (int i = 0; i < arr7.Length; i++)
            {
                if(i % 2 == 0)
                {
                    arr7[i] = "■";
                }
                else
                {
                    arr7[i] = "□";
                }
            }
            for (int i = 0; i < arr7.Length; i++)
            {
                if (i % 5 == 0 && i > 0)
                {
                    Console.WriteLine("");
                }
                Console.Write(arr7[i]);
            }
            #endregion

        }
    }
}